<?php
<embed src="http://player.youku.com/player.php/sid/XMTYwMDc2NDI4OA==/v.swf" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>
true//真
fasle//假

header("Content-type:text/html;charset=utf-8"); //强制文件编码
header("Location:scc_ydl_1.php?ss=0");//页面跳转
header("Access-Control-Allow-Origin: *"); //允许全部域名跨域

@set_time_limit( 200 ); //设置文件超时

isset()//检测变量是否存在:若变量不存在则返回 FALSE 若变量存在且其值为NULL，也返回 FALSE 若变量存在且值不为NULL，则返回 TURE

condition ? yes : no //if写法


exit;//终止运行
var_dump();//格式化打印
dump();//打印数组
print_r();//打印数组

$i .= '123' //字符串链接符,等效于 $i = $i . 'another string';
$num += 1 //等效于 $num = $num + 1;
$num -= 1 //等效于 $num = $num - 1;
$inum /= 1 //等效于 $num = $num / 1;
$num *= 1 //等效于 $num = $num * 1;
$num %= 1 //等效于 $num = $num % 1;
++$num;//$num累加1

strstr($email, '@');//包含为数字，否则为空
static $i = 1; //声名静态变量
rand();//随机数字，1-999之间的随机数
mt_rand(1,999);//随机数，1-999之间的随机数.据说比rand()快4倍
randomFloat();//随机小数

file_get_contents();//把整个文件读入一个字符串中

sleep(n);//暂停n秒
floor();//舍去小数部分，只取整数
ceil();//进一取整，只要有小数部分，直接加一
round();//四舍五入取整
round($hejijf,2)//保留2位小数点
sprintf("%01.2f",$hejijf)//小数点后2位不足补0
number_format('1234.56',3)//添加千分符，并补小数点
abs();//返回绝对值，取整数
strlen();//字符串长度;
str_pad(string,length,pad_string,pad_type)
//参数    描述
string      //必需。规定要填充的字符串。
length      //必需。规定新的字符串长度。如果该值小于字符串的原始长度，则不进行任何操作。
pad_string  //可选。规定供填充使用的字符串。默认是空白。
pad_type    //可选。规定填充字符串的哪边。
            //可能的值：
            STR_PAD_BOTH - //填充字符串的两侧。如果不是偶数，则右侧获得额外的填充。
            STR_PAD_LEFT - //填充字符串的左侧。
            STR_PAD_RIGHT - //填充字符串的右侧。默认。


//跳出循环
break;

include('function/mysql.php');//包含文件
include_once('function/mysql.php');//包含文件并运行

$fid = explode( "|", $fid ); //根据条件拆分数组或文本文件
implode(',',$time_tt);//数组合并为字符串
$time = $_GET['time']; //接收数据
$zdid = $_POST['ddid'];//post接受数据
require( "config.php" ); //调用文件
<form method='get'>  </form>//表单提交
$shu=mysql_num_rows($query);//sql计数；
iconv ('utf-8','gb2312',$anme_ydl)//转换编码，编码转换

explode( ".", $fid );//拆分字符串为数组
array_pop(); //函数删除数组中的最后一个元素。

trim($ss,',')//过滤字符串两端,
rtrim($ss,',')//过滤字符串尾部,=chop()
ltrim($ss,',')//过滤字符串首部.从字符串左侧移除字符
strrev($zifuchuan);//字符串倒叙

json_encode()//json编码
json_decode()//json解码为对象
json_decode($json,true)//json解码为强制转换为php关联数组

stripos($ss,',');//查找字符串在另一字符串中第一次出现的位置（不区分大小写）
strpos();//查找字符串在另一字符串中第一次出现的位置（区分大小写）
strripos();//查找字符串在另一字符串中最后一次出现的位置（不区分大小写）

mb_substr($str, 0, 5, 'utf8');//中英混合截取，各算一个字符，
strip_tags($content,"<p> <img>");//过滤掉html标签,只保留p，img标签

substr($fjdd,0,-1);//截取字符串

mysql_insert_id();//返回上一步 INSERT 操作产生的 ID

stripslashes($kk);//删除字符串中的反斜杠

stripslashes($k);//函数删除由 addslashes() 函数添加的反斜杠。

str_replace("/","//",$sd); //函数使用一个字符串替换字符串中的另一些字符。区分大小写
str_ireplace("/","//",$sd);//函数使用一个字符串替换字符串中的另一些字符。不区分大小写

addslashes();//给数据添加\转译
stripslashes();//删除数据\转译

base64_encode();//base64编码
base64_decode();//base64解码

htmlspecialchars();//转义 。 html标签转实体$lt;$gt;
htmlspecialchars_decode();//反转义

htmlentities($cctt, ENT_NOQUOTES, "UTF-8");//内容以utf-8代码显示

is_array();//判断变量是否为数组／是为ture／否为false

/*上传文件
enctype="multipart/form-data"类型php接收*/
$_FILES["file"]               //文件
$_FILES["file"]["type"]    //文件类型
$_FILES["file"]["size"]    //文件尺寸


/*url编码*/
:	%3A
/	%2F
?	%3F
=	%3D
&	%26

/*链接sql数据库*/
$conn=mysql_connect("localhost","root","root"); 
mysql_query("set names utf8"); 
mysql_select_db('dedecmsv57utf8sp1',$conn); 

/*sql入库*/
mysql_query ("INSERT INTO dede_uploads (aid, arcid, title, url, mediatype, width, height, playtime, filesize, uptime, mid, sort)
VALUES ('$aid', '$arcid', '$title', '$url', '$mediatype', '$width', '$height', '$playtime', '$filesize', '$uptime', '$mid', '$sort')");

mysql_query("SELECT * FROM `dede_uploads` where filesize=0;"); //sql查询库

/*循环读取sql数据*/
while ($row = mysql_fetch_array($shuju)){
	$row['pic'] = 'G:\amp\APMServ5.2.6\www\htdocs'.$row['url'];
	$sj[]=$row;
}
while($row = mysql_fetch_array($rs)) echo "$row[id] $row[name] <br />"; //函数从结果集中取得一行作为关联数组，或数字数组，或二者兼有返回根据从结果集取得的行生成的数组，如果没有更多行则返回 false。
while($row = mysql_fetch_object($rs)) echo "$row->id $row->name <br />";//函数从结果集（记录集）中取得一行作为对象
while($row = mysql_fetch_row($rs)) echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";//函数从结果集中取得一行作为数字数组

time();//当前时间戳
date("Y,",time());//当前时间

/* 连接mdb 1 */
$conn = @new COM("ADODB.Connection") or die ("ADO Connection faild."); 
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("D:\Program Files\TX2006-A\Voc$time.mdb"); 
$conn->Open($connstr); 

$Conn = odbc_connect("dbdsn","admin","123"); //连接数据源 
$Doquery=odbc_exec($Conn,"select * from 表名 where 条件");//执行查询

/* 查询mdb */ 
$rs = @new COM("ADODB.RecordSet"); 
$rs->Open("Select * from voc where fomin='\u62E8\u5165' and code not in ('15132922229','8056')",$conn,1,3); //读取2014-09已接电话库

/* 循环读取mdb数据 */ 
while(!$rs->eof){
	$abc1[code]=$rs->Fields["code"]->Value; //来电号码
	$abc1[namecode]=$rs->Fields["namecode"]->Value; //被叫号码
	$abc1[starttime]=$rs->Fields["starttime"]->Value; //来电时间
	$abc1[duration]=$rs->Fields["duration"]->Value; //通话时间
	$arr[]=$abc1;
	$rs->Movenext(); //将记录集指针下移 
} 
$rs->close(); //关闭mdb链接

/* 连接mdb 2 */
$mdbfile = "D:\\Program Files\\PC-3000GL\\PC-3000GL\\Main.mdb";
$user = "Admin";
$password = "1230123";
$connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("$mdbfile"); 
$connid=odbc_connect($connstr,"$user","$password",SQL_CUR_USE_ODBC);
$sql="Select * from ShowForm";
$result=odbc_exec($connid,$sql);
while($row = odbc_fetch_array($result)){
	echo "$row[来电号码]<br />"; 
} die;
if($result) echo "chenggong"; 
else echo "shibai"; 
die;

$timk=$_GET['timk'];//接受网址参数


//条件付值
switch($row[id]){
	case "8":
	$zu_ming = '亿德隆1组';
	break;
}




/* mdb数据大于0的去重 */ 
$vs = array();
foreach ($arr as $k=>&$v) {
  if (isset($vs[$v['incode']]) && strlen($v['incode'])>0) //来电号码去重
    unset($arr[$k]);
  else
    $vs[$v['incode']] = 1;
}

echo count($arr); //二维数组计数

serialize();//序列化储存
unserialize();//序列化恢复


$tel=file_get_contents('tel.txt'); //读取txt

$name=iconv('utf-8','gbk','拨入'); //格式转换；1是文件格式，2是要转的格式，3是要转的数据

foreach($new as $v){}; //循环数组

/*二维数组合并及去重*/
$arr = array_merge($labels,$label);//合并需要合并的俩个数组
	$key = id;//去重条件
	$tmp_arr = array();//声明数组
		 foreach($arr as $k => $v)
		{
		   if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在，若存在返回true
		  {
			 unset($arr[$k]);
			 //删除掉数组（$arr）里相同ID的数组
		  }
		else {
			$tmp_arr[] = $v[$key];
			//记录已有的id
		  }
		}
dump($arr);

$surl = "2014-05-15 20:20:55";
$x = substr($surl,0,16);//截取制定字符串
echo $x;die;

//数组倒叙输出array_reverse
foreach(array_reverse($array) as $key=>$value){ 
echo $value.'
'; 
}



strtotime('2015-04-13 00:00:00');
date("Y-m-d H:i:s", time()); //时间戳转换日期
echo(strtotime("now"));//当前时间
echo(strtotime("3 October 2005"));//2005年10月3号0点
echo(strtotime("+5 hours"));//当前时间后5小时
echo(strtotime("+1 week"));//当前时间后一周
echo(strtotime("+1 week 3 days 7 hours 5 seconds"));//当前时间后一周后3天后7小时后5秒
echo(strtotime("next Monday"));//当前时间后星期一
echo(strtotime("last Sunday"));//当前时间前星期日
days//日
hours//时
minute//分
seconds//秒
week//周
Monday//星期一
Sunday//星期日
next//后面
last//前面
星期一： Mon.=Monday
星期二： Tues.=Tuesday
星期三：Wed.=Wednesday
星期四： Thur.=Thurday
星期五： Fri.=Friday
星期六： Sat.=Saturday 
星期天： Sun.=Sunday

月份
一月份＝JAN. Jan.=January
二月份＝FEB. Feb.=February
三月份＝MAR. Mar.=March 
四月份＝APR. Apr.=April 
五月份＝MAY May=May
六月份＝JUN. Jun.=June
七月份＝JUL. Jul.=July
八月份＝AUG. Aug.=August 
九月份＝SEP. Sept.=September
十月份＝OCT. Oct.=October
十一月份＝NOV. Nov.=November
十二月份＝DEC. Dec.=December

//PHP计算两个时间差的方法 
$startdate="2010-12-11 11:40:00";
$enddate="2012-12-12 11:45:09";
$date=floor((strtotime($enddate)-strtotime($startdate))/86400);
$hour=floor((strtotime($enddate)-strtotime($startdate))%86400/3600);
$minute=floor((strtotime($enddate)-strtotime($startdate))%86400/60);
$second=floor((strtotime($enddate)-strtotime($startdate))%86400%60);
echo $date."天<br>";
echo $hour."小时<br>";
echo $minute."分钟<br>";
echo $second."秒<br>";

//author:zhxia 获取指定日期所在星期的开始时间与结束时间
function getWeekRange($date){
    $ret=array();
    $timestamp=strtotime($date);
    $w=strftime('%u',$timestamp);
    $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);
    $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);
    return $ret;
}

//author:zhxia 获取指定日期所在月的开始日期与结束日期
function getMonthRange($date){
    $ret=array();
    $timestamp=strtotime($date);
    $mdays=date('t',$timestamp);
    $ret['sdate']=date('Y-m-1 00:00:00',$timestamp);
    $ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);
    return $ret;
}

//author:zhxia  以上两个函数的应用
function getFilter($n){
    $ret=array();
    switch($n){
        case 1:// 昨天
            $ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));
            $ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));
        break;
        case 2://本星期
            $ret=getWeekRange(date('Y-m-d'));
        break;
        case 3://上一个星期
            $strDate=date('Y-m-d',strtotime('-1 week'));
            $ret=getWeekRange($strDate);
        break;
        case 4: //上上星期
            $strDate=date('Y-m-d',strtotime('-2 week'));
            $ret=getWeekRange($strDate);
        break;
        case 5: //本月
            $ret=getMonthRange(date('Y-m-d'));
            break;
        case 6://上月
            $strDate=date('Y-m-d',strtotime('-1 month'));
            $ret=getMonthRange($strDate);
        break;
    }
    return $ret;
}




//数组Array函数
array()	创建数组。
array_change_key_case()	返回其键均为大写或小写的数组。
array_chunk()	把一个数组分割为新的数组块。
array_combine($jian,$zhi)	通过合并两个数组来创建一个新数组。
array_count_values()	用于统计数组中所有值出现的次数。
array_diff()	返回两个数组的差集数组。
array_diff_assoc()	比较键名和键值，并返回两个数组的差集数组。
array_diff_key()	比较键名，并返回两个数组的差集数组。
array_diff_uassoc()	通过用户提供的回调函数做索引检查来计算数组的差集。
array_diff_ukey()	用回调函数对键名比较计算数组的差集。
array_fill()	用给定的值填充数组。
array_filter()	用回调函数过滤数组中的元素。
array_flip()	交换数组中的键和值。
array_intersect()	计算数组的交集。
array_intersect_assoc()	比较键名和键值，并返回两个数组的交集数组。
array_intersect_key()	使用键名比较计算数组的交集。
array_intersect_uassoc()	带索引检查计算数组的交集，用回调函数比较索引。
array_intersect_ukey()	用回调函数比较键名来计算数组的交集。
array_key_exists()	检查给定的键名或索引是否存在于数组中。
array_keys()	返回数组中所有的键名。
array_map()	将回调函数作用到给定数组的单元上。
array_merge()	把一个或多个数组合并为一个数组。
array_merge_recursive()	递归地合并一个或多个数组。
array_multisort()	对多个数组或多维数组进行排序。
array_pad()	用值将数组填补到指定长度。
array_pop()	将数组最后一个单元弹出（出栈）。
array_product()	计算数组中所有值的乘积。
array_push()	将一个或多个单元（元素）压入数组的末尾（入栈）。
array_rand()	从数组中随机选出一个或多个元素，并返回。
array_reduce()	用回调函数迭代地将数组简化为单一的值。
array_reverse()	将原数组中的元素顺序翻转，创建新的数组并返回。
array_search("red",$a)	在数组中搜索给定的值，如果成功则返回相应的键名。
array_shift()	删除数组中的第一个元素，并返回被删除元素的值。
array_slice()	在数组中根据条件取出一段值，并返回。
array_splice()	把数组中的一部分去掉并用其它值取代。
array_sum()	计算数组中所有值的和。
array_udiff()	用回调函数比较数据来计算数组的差集。
array_udiff_assoc()	带索引检查计算数组的差集，用回调函数比较数据。
array_udiff_uassoc()	带索引检查计算数组的差集，用回调函数比较数据和索引。
array_uintersect()	计算数组的交集，用回调函数比较数据。
array_uintersect_assoc()	带索引检查计算数组的交集，用回调函数比较数据。
array_uintersect_uassoc()	带索引检查计算数组的交集，用回调函数比较数据和索引。
array_unique()	删除数组中重复的值。
array_unshift()	在数组开头插入一个或多个元素。
array_values()	返回数组中所有的值。
array_walk()	对数组中的每个成员应用用户函数。
array_walk_recursive()	对数组中的每个成员递归地应用用户函数。
arsort()	对数组进行逆向排序并保持索引关系。
asort()	对数组进行排序并保持索引关系。
compact()	建立一个数组，包括变量名和它们的值。
count()	计算数组中的元素数目或对象中的属性个数。
current()	返回数组中的当前元素。
each()	返回数组中当前的键／值对并将数组指针向前移动一步。
end()	将数组的内部指针指向最后一个元素。
extract()	从数组中将变量导入到当前的符号表。
in_array()	检查数组中是否存在指定的值。
key()	从关联数组中取得键名。
krsort()	对数组按照键名逆向排序。
ksort()	对数组按照键名排序。
list()	把数组中的值赋给一些变量。
natcasesort()	用“自然排序”算法对数组进行不区分大小写字母的排序。
natsort()	用“自然排序”算法对数组排序。
next()	将数组中的内部指针向前移动一位。
pos()	current() 的别名。
prev()	将数组的内部指针倒回一位。
range()	建立一个包含指定范围的元素的数组。
reset()	将数组的内部指针指向第一个元素。
rsort()	对数组逆向排序。
shuffle()	把数组中的元素按随机顺序重新排列。
sizeof()	count() 的别名。
sort()	对数组排序。
uasort()	使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。
uksort()	使用用户自定义的比较函数对数组中的键名进行排序。
usort()	使用用户自定义的比较函数对数组中的值进行排序。
empty() 判断数组为空，则返回true
$pos = array_search(max($a), $a); 最大值的键值
$pos = array_search(min($a), $a); 最小值的键值

//数组Array常量
CASE_LOWER	用在 array_change_key_case() 中将数组键名转换成小写字母。	 
CASE_UPPER	用在 array_change_key_case() 中将数组键名转换成大写字母。	 
SORT_ASC	用在 array_multisort() 函数中，使其升序排列。	 
SORT_DESC	用在 array_multisort() 函数中，使其降序排列。	 
SORT_REGULAR	用于对对象进行通常比较。	 
SORT_NUMERIC	用于对对象进行数值比较。	 
SORT_STRING	用于对对象进行字符串比较。	 
SORT_LOCALE_STRING	基于当前区域来对对象进行字符串比较。	
COUNT_NORMAL	 	 
COUNT_RECURSIVE	 	 
EXTR_OVERWRITE	 	 
EXTR_SKIP	 	 
EXTR_PREFIX_SAME	 	 
EXTR_PREFIX_ALL	 	 
EXTR_PREFIX_INVALID	 	 
EXTR_PREFIX_IF_EXISTS	 	 
EXTR_IF_EXISTS	 	 
EXTR_REFS

<input type="text" name="fname" />

//对象写法
class Obj {
    protected $name = 'Obj';//对象内部可见 （该对象的子对象同样可以访问）
    public function getName() {//公开可见
        private $id = 123;//对象自身内部可见 （不包含该对象的子对象，或者说private属性和方法不会被继承）
        return $this->name;
    }
}

class human{  
  
 public $mood='';// 心情,公有   
 private $money=500;// 钱,私有的  
   
 public function getmoney(){  
    return $this->money;   
 }    
 //定义私有秘密方法  
 private function secret(){  
       
     echo '我那天偷吃了一块糖';  
 }  
 //告诉我你的秘密方法  
 public function tellme(){  
    
  $this->secret();   
 }  
   
} 


//php 读取xml

	//xml源文件

<?xml version="1.0 encoding="UTF-8"?>
<humans>
<zhangying>
<name>张映</name>
<sex>男</sex>
<old>28</old>
</zhangying>
<tank>
<name>tank</name>
<sex>男</sex>
<old>28</old>
</tank>
</humans>

	//1)DOMDocument读取xml

<?php 
$doc = new DOMDocument(); 
$doc->load('person.xml'); //读取xml文件 
$humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组 
foreach( $humans as $human ) 
{ 
$names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组 
$name = $names->item(0)->nodeValue; //取得node中的值，如<name> </name> 
$sexs = $human->getElementsByTagName( "sex" ); 
$sex = $sexs->item(0)->nodeValue; 
$olds = $human->getElementsByTagName( "old" ); 
$old = $olds->item(0)->nodeValue; 
echo "$name - $sex - $old\n"; 
} 
?>



//数组排序
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值，以升序对关联数组进行排序
ksort() - 根据键，以升序对关联数组进行排序
arsort() - 根据值，以降序对关联数组进行排序
krsort() - 根据键，以降序对关联数组进行排序
 

　　//2)simplexml读取xml
<?php 
$xml_array=simplexml_load_file($url);
$message = $xml_array->message;//返回信息
$xxll = (array)$message;//对象转换
$meage = $xxll['0'];
?>

<?php 
$xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中 
foreach($xml_array as $tmp){ 
echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>"; 
} 
?>

 

　　//3)用php正则表达式来记取数据

<?php 
$xml = ""; 
$f = fopen('person.xml', 'r'); 
while( $data = fread( $f, 4096 ) ) { 
$xml .= $data; 
} 
fclose( $f ); 
// 上面读取数据 
preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外层标签里面的内容 
foreach( $humans[1] as $k=>$human ) 
{ 
preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字 
preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性别 
preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年龄 
} 
foreach($name[1] as $key=>$val){ 
echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ; 
} 
?>

 

　　//4)xmlreader来读取xml数据

<?php 
$reader = new XMLReader(); 
$reader->open('person.xml'); //读取xml数据 
$i=1; 
while ($reader->read()) { //是否读取 
if ($reader->nodeType == XMLReader::TEXT) { //判断node类型 
if($i%3){ 
echo $reader->value; //取得node的值 
}else{ 
echo $reader->value."<br>" ; 
}
$i++; 
} 
} 
?>


#测试网址:     http://localhost/blog/testurl.php?id=5

//获取域名或主机地址 
echo $_SERVER['HTTP_HOST']."<br>"; #localhost

//获取网页地址 
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

//获取网址参数 
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

//获取用户代理 
echo $_SERVER['HTTP_REFERER']."<br>"; 

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
#http://localhost:80/blog/testurl.php?id=5

//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; 
echo dirname($url);
#http://localhost/blog






/*保存图片到本地*/
//创建连接目录
function mkDirs($dir){
	if(!is_dir($dir)){
		if(!mkDirs(dirname($dir))){
			return false;
		}
		if(!mkdir($dir, 0777)){
			return false;
		}
	}
	return true;
}
//图片类型
function _imgType($imgname){
	$aType = explode(".",$imgname);
	return array_pop($aType);
}

//保存baes64图片到本地
function loadImg($content){
	preg_match( "/<img alt=\"\" src\=\"(.*)\".*?>/", $content, $cott );
	$b64 = $cott[1];
	$coto = str_replace("data:image/jpeg;base64,", "", $b64);
	list($usec, $sec) = explode(" ",microtime());
	list($aa,$bb) = explode('.',$usec);
	$imagename = (float)$sec.$bb;
	//写入到文件夹
	$yearmouth  = date( 'Ym' );
	$time  = time() . rand( 1000, 100000 );
	$createdir = "../images/$yearmouth/thumb_img1/";
	$articledir = "images/$yearmouth/thumb_img1/";
	$is_dir = mkDirs($createdir);
	$imgpath = $imagename."_0.jpg";
	$img = base64_decode($coto);
	file_put_contents($createdir.$imgpath, $img);
	$content=$articledir.$imgpath;
	return $content;
}	

//保存图片到本地含中文
function loadImg($content){
	//$patten =""/http:\/\/(\w+\.)+(net|com|cn|org|cc|tv)(\S*\/)(\S)+\.(gif|jpg|png|bmp|jpeg)/i"";
	$patten ="/http:\/\/(.*?)\.(gif|jpg|png|bmp|jpeg)/i";
	
	preg_match_all($patten,$content,$matches);
	list($usec, $sec) = explode(" ",microtime());
	list($aa,$bb) = explode('.',$usec);
	$imagename = (float)$sec.$bb;
	foreach($matches[0] as $k=>$v){
		$imgpath = $imagename.'_'.$k."."._imgType($v);
				
		//写入到文件夹
		$yearmouth  = date( 'Ym' );
		$time  = time() . rand( 1000, 100000 );
		$createdir = "../images/$yearmouth/thumb_img/";
		$articledir = "images/$yearmouth/thumb_img/";
		$is_dir = mkDirs($createdir);
		if( $is_dir ){			
			//处理中文		
			$v = iconv("UTF-8","GB2312//IGNORE",$v) ;
			file_put_contents($createdir.$imgpath, file_get_contents($v));
			$v = iconv("GB2312","UTF-8//IGNORE",$v) ;
			$content=str_replace($v,$articledir.$imgpath,$content);
		}
	}
	return $content;
}	


/*保存本地图片end*/







/*UNICODE处理*/
//将内容进行UNICODE编码
function unicode_encode($name)
{
    $name = iconv('UTF-8', 'UCS-2', $name);
    $len = strlen($name);
    $str = '';
    for ($i = 0; $i < $len - 1; $i = $i + 2)
    {
        $c = $name[$i];
        $c2 = $name[$i + 1];
        if (ord($c) > 0)
        {    // 两个字节的文字
            $str .= '\u'.base_convert(ord($c), 10, 16).base_convert(ord($c2), 10, 16);
        }
        else
        {
            $str .= $c2;
        }
    }
    return $str;
}
$name = 'MY,你大爷的';
$unicode_name=unicode_encode($name);
echo '<h3>'.$unicode_name.'</h3>';
// 将UNICODE编码后的内容进行解码
function unicode_decode($name)
{
    // 转换编码，将Unicode编码转换成可以浏览的utf-8编码
    $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
    preg_match_all($pattern, $name, $matches);
    if (!empty($matches))
    {
        $name = '';
        for ($j = 0; $j < count($matches[0]); $j++)
        {
            $str = $matches[0][$j];
            if (strpos($str, '\\u') === 0)
            {
                $code = base_convert(substr($str, 2, 2), 16, 10);
                $code2 = base_convert(substr($str, 4), 16, 10);
                $c = chr($code).chr($code2);
                $c = iconv('UCS-2', 'UTF-8', $c);
                $name .= $c;
            }
            else
            {
                $name .= $str;
            }
        }
    }
    return $name;
}

/*遍历目录下子目录及文件*/
function list_dir_file($dir_name){
     $files = array();
     if ( $handle =  opendir($dir_name) ) {
         while ( ($file = readdir($handle)) !== false  ) {
             /*if ( $file != '..' && $file != '.' )  {
                 if ( is_dir($dir_name . '/' . $file) )  {
                     $files[$file] = list_dir_file($dir_name . '/' .  $file);
                 } else{
				 	$files[] = $file;
				 }
             } else {
              continue  ;
             }*/
			 if(strpos($file,'.html')){
				$files[] = $file;
			 }
         }
         closedir($handle);
          return $files;
     } else {
      exit('目录  <b>'.$dir_name.'</b> 不存在');
     }
}
$filedir = 'D:\wwwroot\rl88.yxdqt.com\web\templated50';
$allfile = list_dir_file($filedir);
/*遍历目录下子目录及文件end*/

/* 目录遍历文件 */
$path = '../img'; 
function get_filetree($path){ 
$tree = array(); 
foreach(glob($path.'/*') as $single){ 
if(is_dir($single)){ 
$tree = array_merge($tree,get_filetree($single)); 
} 
else{ 
$tree[] = $single; 
} 
} 
return $tree; 
} 
print_r(get_filetree($path)); 
/* 目录遍历文件 */

/*随机不重复数组开始*/
function unique_array($array, $total, $unique = true){
    $newArray = array();
    if((bool)$unique){
        $array = array_unique($array);
    }
    shuffle($array);
    $length = count($array);
    for($i = 0; $i < $total; $i++){
        if($i < $length){
            $newArray[] = $array[$i];
        }
    }
    return $newArray;
}
$phrases = array('Hello Sailor','Acid Test','Bear Garden','Botch A Job','Dark Horse',
    'In The Red','Man Up','Pan Out','Quid Pro Quo','Rub It In','Turncoat',
    'Yes Man','All Wet','Bag Lady','Bean Feast','Big Wig', 'Big Wig','Bear Garden'
    ,'All Wet','Quid Pro Quo','Rub It In');
print_r(unique_array($phrases, 1));
// Returns 1 result
print_r(unique_array($phrases, 5));
// Returns 5 unique results
print_r(unique_array($phrases, 5, false));
// Returns 5 results, but may have duplicates if
// there are duplicates in original array
print_r(unique_array($phrases, 100));
// Returns 100 unique results    
print_r(unique_array($phrases, 100, false));
// Returns 100 results, but may have duplicates if
// there are duplicates in original array
/*随机不重复数组结束*/


$bIp = gethostbyname($_ENV['COMPUTERNAME']); //获取本机的局域网IP
echo "本机IP：",$bIp,"\n";
echo "本机主机名：",gethostbyaddr($bIp),"\n\n\n"; //gethostbyaddr 函数可以根据局域网IP获取主机名
//默认网关IP
list($ipd1,$ipd2,$ipd3) = explode('.',$bIp);
$mask = $ipd1 . "." . $ipd2 . "." . $ipd3 ;
exec('arp -a',$aIp); //获取局域网中的其他IP
foreach( $aIp as $ipv) {
 if(strpos($ipv,'接口') !== false) {//一下显示的IP是否是当前局域网中的 而不是其他的类型 可以在cmd下试一下命令
 $bool = false;
 preg_match('/(?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))/',$ipv,$arr);
 if(strcmp($arr[0],$bIp) == 0) {
  $bool = true;
 }
 } else {
 if($bool) {
  $str = preg_replace('/\s+/', '|', $ipv);
  $sArr = explode('|',$str);
  if($sArr[1] == 'Internet' || empty($sArr[1])) {
  continue;
  }
  //去除默认网关
  if(strcmp($mask . ".1", $sArr[1]) == 0) {
  continue;
  }
  //去除同网关下255的IP
  if(strcmp($mask . ".255", $sArr[1]) == 0) {
  continue;
  }
  //去除组播IP
  list($cIp) = explode('.', $sArr[1]);
  if($cIp >= 224 && $cIp <= 239) {
  continue;
  }
  echo "IP地址：|",$sArr[1],"|\n";
  echo "MAC地址：",$sArr[2],"\n";
  echo "主机名：",gethostbyaddr($sArr[1]),"\n";
  echo "\n\n";
 }
 }
}

&nbsp; //空格

echo <<< HTML
<form method=post>
<input type=text name=t value=$t>
<input type=submit value=ok>
</form>
<script>
document.forms[0].submit();
</script>
HTML;

/*框架*/
<frameset cols="50%,*">
<frame name="hello" src="up2u.html">
<frame name="hi" src="me2.html">
</frameset>




//xml格式
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
	<url>
		<loc>http://www.chengjx.com</loc>
		<priority>1.0</priority>
		<lastmod>2016-02-10</lastmod>
		<changefreq>always</changefreq>
	</url>
</urlset>



//input属性
<input type="value">
button	定义可点击按钮（多数情况下，用于通过 JavaScript 启动脚本）。
checkbox	定义复选框。
file	定义输入字段和 "浏览"按钮，供文件上传。
hidden	定义隐藏的输入字段。
image	定义图像形式的提交按钮。
password	定义密码字段。该字段中的字符被掩码。
radio	定义单选按钮。
reset	定义重置按钮。重置按钮会清除表单中的所有数据。
submit	定义提交按钮。提交按钮会把表单数据发送到服务器。
text	定义单行的输入字段，用户可在其中输入文本。默认宽度为 20 个字符。
<input type="datetime-local" value="<?php echo date('Y-m-d').'T'.date('H:i'); ?>" /> //设置默认当天时间


/*二维数组排序——1*/
$data = array();
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// 取得列的列表
foreach ($data as $key => $row)
{
	$volume[$key]  = $row['volume'];
	$edition[$key] = $row['edition'];
}
$ret = arraySort($data, 'volume', 'desc');
print_r($ret);
/**
 * @desc arraySort php二维数组排序 按照指定的key 对数组进行排序
 * @param array $arr 将要排序的数组
 * @param string $keys 指定排序的key
 * @param string $type 排序类型 asc | desc
 * @return array
 */
function arraySort($arr, $keys, $type = 'asc') {
	$keysvalue = $new_array = array();
	foreach ($arr as $k => $v){
		$keysvalue[$k] = $v[$keys];
	}
	$type == 'asc' ? asort($keysvalue) : arsort($keysvalue);
	reset($keysvalue);
	foreach ($keysvalue as $k => $v) {
	   $new_array[$k] = $arr[$k];
	}
	return $new_array;
}

/*二维数组排序——2*/
$data = array();
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
// 取得列的列表
foreach ($data as $key => $row)
{
	$volume[$key]  = $row['volume'];
	$edition[$key] = $row['edition'];
}
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
print_r($data);

/*二维数组排序——3*/
/**
 * @desc array_sort php二维数组排序 对数组进行排序
 * @param array $arr 将要排序的数组
 * @param string $keys 指定排序的key
 * @param string $type 排序类型 asc | desc
 * @return array
 */
function array_sort($arr,$keys,$type='asc'){ 
 $keysvalue = $new_array = array();
 foreach ($arr as $k=>$v){
  $keysvalue[$k] = $v[$keys];
 }
 if($type == 'asc'){
  asort($keysvalue);
 }else{
  arsort($keysvalue);
 }
 reset($keysvalue);
 foreach ($keysvalue as $k=>$v){
  $new_array[$k] = $arr[$k];
 }
 return $new_array; 
}

//多选提交
<FORM method="post" action="checkTest.php"> 
<INPUT name="test[]" type="checkbox" value="1" /> 
<INPUT type="checkbox" name="test[]" value="2" /> 
<INPUT type="checkbox" name="test[]" value="3" /> 
<INPUT type="checkbox" name="test[]" value="4" /> 
<INPUT type="checkbox" name="test[]" value="5" /> 
<INPUT type="submit" name="Submit" value="Submit" /> 
</FORM>
//取checkbox元素值
echo implode(",",$_POST['test']);


/*图片是否显示判断*/
$url = 'http://www.test.com/images/test.jpg';
if( @fopen( $url, 'r' ) )
{
	echo 'File Exits';
}
else
{
	echo 'File Do Not Exits';
}

// Page分页函数
$page = $_GET["page"];
function Page($rows,$page_size){
	global $page,$select_from,$select_limit,$pagenav;
	$page_count = ceil($rows/$page_size);
	if($page <= 1 || $page == '') $page = 1;
	if($page >= $page_count) $page = $page_count;
	$select_limit = $page_size;
	$select_from = ($page - 1) * $page_size.',';
	$pre_page = ($page == 1)? 1 : $page - 1;
	$next_page= ($page == $page_count)? $page_count : $page + 1 ;
	$pagenav .= "<li><a>第 $page/$page_count 页</a></li>";
	$pagenav .= "<li><a href='?page=1'>首页</a></li>";
	$pagenav .= "<li><a href='?page=$pre_page'>前一页</a></li>";
	$pagenav .= "<li><a href='?page=$next_page'>后一页</a></li>";
	$pagenav .= "<li><a href='?page=$page_count'>末页</a></li>";
	$pagenav .= "<li><a>共 $rows 条记录</a></li>";
	$pagenav.="　<li><a>跳到：<select name='topage' size='1' style='margin:0 0 2px 0;width:50px;' onchange='window.location=\"?page=\"+this.value'>\n";
	for($i=1;$i<=$page_count;$i++){
	if($i==$page) $pagenav.="<option value='$i' selected>$i</option>\n";
	else $pagenav.="<option value='$i'>$i</option>\n";
	}
	$pagenav.="</select></a></li>";
} 
// Page分页函数

/*数组分页*/
/** * @param int $total 总页数 * @param int $current 当前页 * @param int $pre 页面显示的页码数 */
function page($total,$current,$pre){
	if(!intval($total)){
		echo "$total 不是数字";
		return false;
	}
	if(intval($current)>intval($total)){
		echo "当前  $current 不能大于总页数";
		return false;
	}
	if( ($pre%2) == 0 ){
		echo '页面显示的页码不能为偶数';
		return false;
	}
	$array = array();
	for($i=1;$i<=$total;$i++){
		$array[] = $i;
	}
	$num = intval($pre/2);
	$qm = array_slice($array,($current-$num-1),$num); //前面
	$hm = array_slice($array,$current,$num);  //后面
	$zj = array($current); //中间不变位置的页码
	if($total-$current<$num){
		$newArray = array_slice($array,($total-$pre),$pre);
	}elseif($current<=$num){
		$newArray = array_slice($array, 0 ,$pre);
	}else{
		$newArray = array_merge($qm,$zj,$hm);
	}
	return $newArray;
}
print_r(page(11,4,5));







/*unicode编码转换*/
/**
* $str 原始中文字符串
* $encoding 原始字符串的编码，默认utf-8
* $prefix 编码后的前缀，默认"&#"
* $postfix 编码后的后缀，默认";"
*/
function unicode_encode($str, $encoding = 'utf-8', $prefix = '&#', $postfix = ';') {
    //将字符串拆分
    $str = iconv("UTF-8", "gb2312", $str);
    $cind = 0;
    $arr_cont = array();
 
    for ($i = 0; $i < strlen($str); $i++) {
        if (strlen(substr($str, $cind, 1)) > 0) {
            if (ord(substr($str, $cind, 1)) < 0xA1) { //如果为英文则取1个字节
                array_push($arr_cont, substr($str, $cind, 1));
                $cind++;
            } else {
                array_push($arr_cont, substr($str, $cind, 2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row) {
        $row = iconv("gb2312", "UTF-8", $row);
    }
 
    //转换Unicode码
    foreach ($arr_cont as $key => $value) {
        $unicodestr.= $prefix . base_convert(bin2hex(iconv('utf-8', 'UCS-4', $value)), 16, 10) .$postfix;
    }
 
    return $unicodestr;
}
 
/**
* $str Unicode编码后的字符串
* $decoding 原始字符串的编码，默认utf-8
* $prefix 编码字符串的前缀，默认"&#"
* $postfix 编码字符串的后缀，默认";"
*/
function unicode_decode($unistr, $encoding = 'utf-8', $prefix = '&#', $postfix = ';') {
    $arruni = explode($prefix, $unistr);
    $unistr = '';
    for ($i = 1, $len = count($arruni); $i < $len; $i++) {
        if (strlen($postfix) > 0) {
            $arruni[$i] = substr($arruni[$i], 0, strlen($arruni[$i]) - strlen($postfix));
        }
        $temp = intval($arruni[$i]);
        $unistr .= ($temp < 256) ? chr(0) . chr($temp) : chr($temp / 256) . chr($temp % 256);
    }
    return iconv('UCS-2', $encoding, $unistr);
}
 
$str = "PHP二次开发：www.php2.cc";
$stdr = "&#22696;&#19997;";
 
$unistr = unicode_encode($str);
$unistr2 = unicode_decode($stdr);
echo $unistr . '<br />';
echo $unistr2 . '<br />';
 
$unistr = unicode_encode($str,'GBK','\\u');
$unistr2 = unicode_decode($unistr,'GBK','\\u');
echo $unistr . '<br />';
echo $unistr2 . '<br />';
/*unicode编码转换-结束*/










<div id="outer">
    <ul id="tab">
        <li class="current">全部图片</li>
		<volist name="dcat" id="vo">
        <li><{$vo.name}></li>
		</volist>
		<div style="float:right;margin:4px 10px 0 0;"><input type="text" id="cat_name" name="cat_name" placeholder="请输入添加分类名称" required="required"><input type="button" name="catname" value="添加分类" onclick="catadd(cat_name.value)" /></div>
    </ul>
	<div id="content">
        <ul style="display:block;">		</ul>
		<ul>		</ul>
		
	</div>
</div>

另附
<div style="float:right;margin:4px 10px 0 0;"><input type="text" id="cat_name" name="cat_name" value="请输入添加分类名称" required="required"><input type="button" name="catname" value="修改分类" onclick="catadd(cat_name.value)" /></div>

//图片缩放
bool imagecopyresampled ( resource dstimage,resourcesrc_image , int dstx,intdst_y , int srcx,intsrc_y , int dstw,intdst_h , int srcw,intsrc_h )
$dst_image：新建的图片
$src_image：需要载入的图片
$dst_x：设定需要载入的图片在新图中的x坐标
$dst_y：设定需要载入的图片在新图中的y坐标
$src_x：设定载入图片要载入的区域x坐标
$src_y：设定载入图片要载入的区域y坐标
$dst_w：设定载入的原图的宽度（在此设置缩放）
$dst_h：设定载入的原图的高度（在此设置缩放）
$src_w：原图要载入的宽度
$src_h：原图要载入的高度

imagecopyresized

getimagesize('url', array [imageinfo]);//获取图像信息

imagecreatetruecolor(width,height); //创建真彩图像资源
imagefill();//填充颜色函数

imagecreate(width,height);//新建一个空白图像资源
imagecolorAllocate();//添加背景色

imagedestroy();//摧毁图像

imagejpeg(img,img.jpg,100);//从 image 图像以 filename 为文件名创建一个 JPEG 图像。
//img 为imagecreatetruecolor创建的图像资源
//保存文件名
//图片质量0-100

imagegif();
imagepng();

header('content-type:image/jpeg');   //jpg格式
header('content-type:image/png');   //png格式

header("Content-type: image/jpeg");
//创建并载入一幅图像
$im = @imagecreatefromjpeg("images/flower_1.jpg");
imagecreatefromgif()//创建一块画布，并从 GIF 文件或 URL 地址载入一副图像
imagecreatefromjpeg()//创建一块画布，并从 JPEG 文件或 URL 地址载入一副图像
imagecreatefrompng()//创建一块画布，并从 PNG 文件或 URL 地址载入一副图像
imagecreatefromwbmp()//创建一块画布，并从 WBMP 文件或 URL 地址载入一副图像
imagecreatefromstring()//创建一块画布，并从字符串中的图像流新建一副图像




gd_info函数：获取当前安装的GD库的信息　
getimagesize函数：获取图像的大小　
image_type_to_extension函数：获取图像类型的文件后缀　
image_type_to_mime_type函数：判断一个IMAGETYPE常量的MIME类型　
image2wbmp函数：以WBMP格式将图像输出到浏览器或文件　
imagealphablending函数：设定图像的混色模式　
imageantialias函数：是否使用antialias(抗锯齿)功能　
imagearc函数：画椭圆弧　
imagechar函数：水平地画一个字符　
imagecharup函数：垂直地画一个字符　
imagecolorallocate函数：为一幅图像分配颜色　
imagecolorallocatealpha 函数：为一幅图像分配颜色+alpha　
imagecolorat函数：获取某像素的颜色索引值　
imagecolorclosest函数：获取与指定颜色最接近的颜色的索引值　
imagecolorclosestalpha函数：获取与指定颜色加透明度最接近的颜色的索引值
imagecolorclosesthwb函数：获取与指定颜色最接近的色度的黑白色的索引　
imagecolordeallocate函数：取消图像颜色的分配　
imagecolorexact函数：获取指定颜色的索引值　
imagecolorexactalpha函数：获取指定颜色加透明度的索引值　
imagecolormatch函数：使一个图像中调色板版本的颜色与真彩色版本更能匹配
imagecolorresolve函数：获取指定颜色的索引值或有可能得到的最接近的替代值
imagecolorresolvealpha函数：获取指定颜色透明度的索引值或有可能得到的最接近的替代值　
imagecolorset函数：给指定调色板索引设定颜色　
imagecolorsforindex函数：获取某索引的颜色　
imagecolorstotal函数：获取一幅图像的调色板中颜色的数目　
imagecolortransparent函数：将某个颜色定义为透明色　
imageconvolution函数：申请一个3*3的卷积矩阵　
imagecopy函数：复制图像的一部分　
imagecopymerge函数：复制并合并图像的一部分　
imagecopymergegray函数：用灰度复制并合并图像的一部分
imagecopyresampled函数：重采样复制部分图像并调整大小
imagecopyresized函数：复制部分图像并调整大小
imagecreate函数：新建一个基于调色板的图像
imagecreatefromgd2函数：从GD 2文件或URL中新建一个图像　
imagecreatefromgd2part函数：从给定的GD 2文件或URL中的一部分新建一个图像
imagecreatefromgd函数：从GD文件或URL中新建一个图像
imagecreatefromgif函数：从GIF文件或URL中新建一个图像
imagecreatefromjpeg函数：从JPEG文件或URL中新建一个图像
imagecreatefrompng函数：从PNG文件或URL中新建一个图像
imagecreatefromstring函数：从字符串中的图像流新建一个图像
imagecreatefromwbmp函数：从WBMP文件或URL中新建一个图像
imagecreatefromxbm函数：从XBM文件或URL中新建一个图像
imagecreatefromxpm函数：从XPM文件或URL中新建一个图像
imagecreatetruecolor函数：新建一个真彩色图像
imagedashedline函数：画一条虚线
imagedestroy函数：销毁一个图像
imageellipse函数：画一个椭圆
imagefill函数：用指定颜色填充一个区域
imagefilledarc函数：画一个椭圆弧并填充
imagefilledellipse函数：画一个椭圆并填充
imagefilledpolygon函数：画一个多边形并填充
imagefilledrectangle函数：画一个矩形并填充
imagefilltoborder函数：区域填充到指定颜色的边界为止
imagefilter函数：对图像使用过滤器
imagefontheight函数：获取字体高度
imagefontwidth函数：获取字体宽度
imageftbbox函数：给出一个使用FreeType2字体的文本框
imagefttext函数：使用FreeType2字体将文本写入图像
imagegammacorrect函数：对GD图像应用gamma修正
imagegd2函数：将GD 2图像输出到浏览器或文件
imagegd函数：将GD图像输出到浏览器或文件
imagegif函数：以GIF格式将图像输出到浏览器或文件
imageinterlace函数：激活或禁止隔行扫描
imageistruecolor函数：检查图像是否为真彩色图像
imagejpeg函数：以JPEG格式将图像输出到浏览器或文件
imagelayereffect函数：设定alpha混色标志以使用绑定的libgd分层效果
imageline函数：画一条线段
imageloadfont函数：载入一个新字体
imagepalettecopy函数：将调色板从一幅图像复制到另一幅
imagepng函数：以PNG格式将图像输出到浏览器或文件
imagepolygon函数：画一个多边形
imagepsbbox函数：给出一个使用PostScript Type1字体的文本框
imagepsencodefont函数：改变字体中的字符编码矢量
imagepsextendfont函数：扩充或精简字体
imagepsfreefont函数：释放一个PostScript Type1字体所占用的内存
imagepsloadfont函数：从文件中加载一个PostScript Type1字体
imagepsslantfont函数：倾斜某字体
imagepstext函数：用PostScript Type1字体把文本字符串画在图像上
imagerectangle函数：画一个矩形
imagerotate函数：用给定角度旋转图像
imagesavealpha函数：设置标记以在保存PNG图像时保存完整的alpha通道信息
imagesetbrush 函数：设定画线用的画笔图像　
imagesetpixel函数：画一个单一的像素
imagesetstyle函数：设定画线的风格
imagesetthickness函数：设定画线的宽度
imagesettile函数：设定用于填充的贴图
imagestring函数：水平地画一行字符串　
imagestringup函数：垂直地画一行字符串
imagesx函数：获取图像宽度　
imagesy函数：获取图像高度　
imagetruecolortopalette函数：将真彩色图像转换为调色板图像　
imagettfbbox函数：取得使用TrueType字体的文本的范围
imagettftext函数：用TrueType字体向图像写入文本　
imagetypes函数：返回当前PHP版本所支持的图像类型
imagewbmp函数：以WBMP格式将图像输出到浏览器或文件
imagexbm函数：将XBM图像输出到浏览器或文件　
iptcembed函数：将二进制IPTC数据嵌入一幅JPEG图像中　
iptcparse函数：将二进制IPTC块解析为单个标记
jpeg2wbmp函数：将JPEG图像文件转换为WBMP图像文件
png2wbmp函数：将PNG图像文件转换为WBMP图像文件


//文件操作
filemtime ( string filename )

//返回文件上次被修改的时间，出错时返回 FALSE。时间以 Unix 时间戳的方式返回，可用于 date()。

//例如：$a=filemtime("log.txt");
//           echo "修改时间：".date("Y-m-d H:i:s",$a)."

//------------------------------------------------------------------------------

filectime ( string filename )

//返回文件上次 inode 被修改的时间，如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

//例如：$a=filectime("log.txt");
//           echo "创建时间：".date("Y-m-d H:i:s",$a)."

//------------------------------------------------------------------------------

fileatime ( string filename )

//返回文件上次被访问的时间，如果出错则返回 FALSE。时间以 Unix 时间戳的方式返回。

//例如：$a=fileatime("log.txt");
//          echo "修改时间：".date("Y-m-d H:i:s",$a)."


//josn转换
json_decode()//josn转php数组
json_encode()//变量数组转josn

JSON常量参数说明：
以下常量表示了 json_last_error() 所返回的错误类型。
[plain] view plain copy
JSON_ERROR_NONE (integer)  
没有错误发生。自 PHP 5.3.0 起生效。  
  
JSON_ERROR_DEPTH (integer)  
到达了最大堆栈深度。自 PHP 5.3.0 起生效。  
  
JSON_ERROR_STATE_MISMATCH (integer)  
出现了下溢（underflow）或者模式不匹配。自 PHP 5.3.0 起生效。  
  
JSON_ERROR_CTRL_CHAR (integer)  
控制字符错误，可能是编码不对。自 PHP 5.3.0 起生效。  
  
JSON_ERROR_SYNTAX (integer)  
语法错误。 自 PHP 5.3.0 起生效。  
  
JSON_ERROR_UTF8 (integer)  
异常的 UTF-8 字符，也许是因为不正确的编码。 此常量自 PHP 5.3.1 起生效。  

下面的常量可以和 json_encode() 的 form 选项结合使用。
[plain] view plain copy
JSON_HEX_TAG (integer)  
所有的 < 和 > 转换成 \u003C 和 \u003E。 自 PHP 5.3.0 起生效。  
  
JSON_HEX_AMP (integer)  
所有的 & 转换成 \u0026。 自 PHP 5.3.0 起生效。  
  
JSON_HEX_APOS (integer)  
所有的 ' 转换成 \u0027。 自 PHP 5.3.0 起生效。  
  
JSON_HEX_QUOT (integer)  
所有的 " 转换成 \u0022。 自 PHP 5.3.0 起生效。  
  
JSON_FORCE_OBJECT (integer)  
使一个非关联数组输出一个类（Object）而非数组。 在数组为空而接受者需要一个类（Object）的时候尤其有用。 自 PHP 5.3.0 起生效。  
  
JSON_NUMERIC_CHECK (integer)  
将所有数字字符串编码成数字（numbers）。 自 PHP 5.3.3 起生效。  
  
JSON_BIGINT_AS_STRING (integer)  
将大数字编码成原始字符原来的值。 自 PHP 5.4.0 起生效。  
  
JSON_PRETTY_PRINT (integer)  
用空白字符格式化返回的数据。 自 PHP 5.4.0 起生效。  
  
JSON_UNESCAPED_SLASHES (integer)  
不要编码 /。 自 PHP 5.4.0 起生效。  
  
JSON_UNESCAPED_UNICODE (integer)  
以字面编码多字节 Unicode 字符（默认是编码成 \uXXXX）。 自 PHP 5.4.0 起生效。 
  

$file = "php.txt";
//打开文件，r表示以只读方式打开
$handle = fopen($file,"r");
//获取文件的统计信息
$fstat = fstat($handle);
echo "文件名：".basename($file)."<br>";
//echo "文件大小：".round(filesize("$file")/1024,2)."kb<br>";
echo "文件大小：".round($fstat["size"]/1024,2)."kb<br>";
//echo "最后访问时间：".date("Y-m-d h:i:s",fileatime($file))."<br>";
echo "最后访问时间：".date("Y-m-d h:i:s",$fstat["atime"])."<br>";
//echo "最后修改时间：".date("Y-m-d h:i:s",filemtime($file))."<br>";
echo "最后修改时间：".date("Y-m-d h:i:s",$fstat["mtime"]);


fopen(filename,mode)
/*
r	打开文件为只读。文件指针在文件的开头开始。
w	打开文件为只写。删除文件的内容或创建一个新的文件，如果它不存在。文件指针在文件的开头开始。
a	打开文件为只写。文件中的现有数据会被保留。文件指针在文件结尾开始。创建新的文件，如果文件不存在。
x	创建新文件为只写。返回 FALSE 和错误，如果文件已存在。
r+	打开文件为读/写、文件指针在文件开头开始。
w+	打开文件为读/写。删除文件内容或创建新文件，如果它不存在。文件指针在文件开头开始。
a+	打开文件为读/写。文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件，如果它不存在。
x+	创建新文件为读/写。返回 FALSE 和错误，如果文件已存在。
*/
fwrite() //函数用于写入文件。
fread($fint,filesize($fint)) //函数读取打开的文件。第二个参数是读取多少内容，filesize文件大小，表示全部读取
fclose() //函数用于关闭打开的文件。
filesize() //函数返回指定文件的大小。











?>